iT邦幫忙

DAY 5
2

java菜鳥的學習筆記系列 第 5

使用java NIO2-Part 2, WacthService

  • 分享至 

  • xImage
  •  

NIO 2提供新的類別java.nio.file.WatchService可用來偵測檔案或是資料夾有更動的狀況
(適逢假日,說明就簡略點)

package mywatch;

import java.io.IOException;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;


public class WatchForChange {
	public void detectChanges(){
		try{
			WatchService ws= FileSystems.getDefault().newWatchService(); // 必須要產生WatchService物件
			Path path=Paths.get("G:\\0902"); //指定要監聽的資料夾
			WatchKey key=path.register(ws, StandardWatchEventKinds.ENTRY_MODIFY);//將路徑註冊一個WatchService以及監聽的Event
			while(true){ //創造一個無窮迴圈
				key = ws.take();//當事件發生後,將會放入queue,
				for(WatchEvent<?> event : key.pollEvents()){//利用迴圈來將所有放在queue裡面的Event讀出
					if(event.kind()==StandardWatchEventKinds.ENTRY_MODIFY){//pollEvents裡面如果有ENTRY_MODIFY
						System.out.println("Something Changed");           //就輸出文字
					}
				}
			}
		}catch (IOException | InterruptedException e){
			System.out.println(e.getMessage());
		}
	}
}

我選的資料夾是我BT下載的資料夾,就會一直輸出"Something Changed"


上一篇
簡易格式化日期 in java
下一篇
腦殘式的產生0~9不重複的數字
系列文
java菜鳥的學習筆記28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
鐵殼心
iT邦高手 1 級 ‧ 2012-10-13 23:59:11


坐好慢慢看

我要留言

立即登入留言